package van.planifolia.mapper;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import van.planifolia.pojo.Permission;

import java.util.List;

/**
 * Created by Intellij IDEA<br>
 * 权限控制类的Mapper接口
 * @author Planifolia.Van
 * @version 1.0
 * @date 2022/10/10 15:19
 */
@Repository("permissionDao")
public interface PermissionDao {
    /**
     * 按照用户的id查询他的权限
     * @param uid 用户id
     * @return 查询到当前用户的全部权限
     */
    List<Permission> selectPermissionByUserId(Integer uid);

    /**
     * 查询全部权限
     * @return 全部权限
     */
    List<Permission> selectAllPermission();

    /**
     * 查询角色的权限
     * @param rid 角色id
     * @return 查询到当前角色的权限id
     */
    List<Integer> selectPermissionByRid(@Param("rid") Integer rid);

    /**
     * 删除当前角色的全部权限
     * @param rid 当前角色的id
     * @return 影响的行数
     */
    int deleteAllPerByRid(@Param("rid") Integer rid);

    /**
     * 插入当前用户的新权限
     * @param rid 用户id
     * @param pers 权限id
     * @return 影响的行数
     */
    int insertPerByRid(@Param("rid") Integer rid,@Param("pers") Integer[] pers);
}
